#ifndef F2FB_DATABASE_ENTITY_H
#define F2FB_DATABASE_ENTITY_H

#include <any>
#include <map>
#include <string>

#include <sqlite_modern_cpp.h>

namespace F2FB
{

namespace Database
{

class Entity
{
public:
    virtual ~Entity() = default;

    template<typename T>
    T value(const std::string& key) const
    {
        return std::any_cast<T>(m_data.at(key));
    }

protected:
    std::map<std::string, std::any> m_data;

};

} // namespace Database

} // namespace F2FB

#endif // F2FB_DATABASE_ENTITY_H
